package com.gdust.hzx.manager.mapper;

import com.gdust.hzx.model.dto.system.SysRoleDto;
import com.gdust.hzx.model.entity.system.SysRole;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * SysRoleMapper 接口，用于管理与角色相关的数据库操作。
 *
 * ClassName: SysRoleMapper
 * Package: com.gdust.spzx.manager.mapper
 * Description: 提供角色管理的持久层操作接口，用于与数据库交互。
 *
 * @Author syun
 * @Create 2024/11/6 21:38
 * @Version 1.0
 */
@Mapper
public interface SysRoleMapper {
    /**
     * 分页查询角色列表的方法。
     * 根据传入的 SysRoleDto 参数筛选角色信息，并返回符合条件的角色列表。
     *
     * @param sysRoleDto 包含查询条件的 DTO 对象，通常包含分页信息和查询关键字。
     * @return 返回符合条件的角色列表。
     */
    List<SysRole> findByPage(SysRoleDto sysRoleDto);


    /**
     * 添加角色方法
     * @param sysRole 角色实体类传入参数，包含需要更新的角色 ID 和新的角色信息
     */
    void saveSysRole(SysRole sysRole);


    /**
     * 修改角色方法
     * @param sysRole 角色实体类传入参数，包含需要更新的角色 ID 和新的角色信息
     */
    void updateSysRole(SysRole sysRole);

    /**
     * 删除角色方法
     * @param roleId 角色id
     */
    void deleteById(Long roleId);

    /**
     * 查询所有角色
     * @return 角色实体类的集合
     */
    List<SysRole> findAll();
}
